import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

/* Layout */
import Layout from '@/layout'

//引入个人中心组件
const person = () => import("@/views/Person/index")

/**
 *
 * constantRoutes没有权限要求的基本页面，所有角色都可以访问
 */
//这里开始对应路由都显示在app-main中
export const constantRoutes = [
  {
    path: '/login', //路径
    component: () => import('@/views/login/index'), //组件
    //当设置为true时该路由不会在侧边栏出现 , 如401 , login等页面 , 默认为false
    hidden: true //是否隐藏
  },

  //错误页面 , 404
  {
    path: '/404',
    component: () => import('@/views/404'),
    hidden: true
  },

  // roles: ['admin', 'editor'] // 设置该路由进入的权限，支持多个权限叠加
  // title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
  // icon: 'svg-name' // 设置该路由的图标，支持 svg-class，也支持 el-icon-x element-ui 的 icon
  // noCache: true // 如果设置为true，则不会被 <keep-alive> 缓存(默认 false)
  // breadcrumb: false //  如果设置为false，则不会在breadcrumb面包屑中显示(默认 true)
  // affix: true // 若果设置为true，它则会固定在tags-view中(默认 false)

  {
    path: '/',
    component: Layout,
    //重定向
    redirect: '/dashboard',
    children: [{
      path: 'dashboard',
      //设置路由的名字 ,
      name: '微信',
      component: () => import('@/views/dashboard/index'),
      meta: {title: '微信', icon: 'dashboard'}
    }]
  },
  //新增一个页面 搜索
  {
    path: '/Seek',
    component: Layout,
    // 重定向
    redirect: '/Seek',
    //  子路由 , 子组件显示的地方
    children: [
      {
        path: 'Seek',
        name: '搜索',
        component: () => import('@/views/Seek/index'),
        //指定显示的名字 , 用户的头像
        meta: {title: '搜索', icon: 'eye-open'},
      }
    ]
  },
  //新增一个页面 , 聊天列表页面
  {
    path: '/WeChat',
    component: Layout,
    // 重定向
    redirect: '/WeChat',
    //  子路由 , 子组件显示的地方
    children: [
      {
        path: 'WeChat',
        name: '聊天',
        component: () => import('@/views/WeChat/index'),
        //指定显示的名字 , 用户的头像
        meta: {title: '聊天列表', icon: 'tree'},
      }
    ]
  },
  //朋友列表
  {
    path: '/Friends',
    component: Layout,
    // 重定向
    redirect: '/Friends',
    children: [
      {
        path: 'Friends',
        name: '朋友',
        component: () => import('@/views/Friends/index'),
        meta: {title: '朋友列表', icon: 'form'}
      }
    ]
  },
  //用户的个人中心
  {
    path: '/Person',
    component: Layout,
    redirect: '/Person',
    children: [
      {
        path: 'Person',
        name: '个人',
        component: () => import('@/views/Person/index'),
        meta: {title: '个人中心', icon: 'user'}
      }
    ]
  },


  // 404 page must be placed at the end !!!
  {path: '*', redirect: '/404', hidden: true}
]

const createRouter = () => new Router({
  // mode: 'history', // require service support
  scrollBehavior: () => ({y: 0}),
  routes: constantRoutes
})

const router = createRouter()

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
  const newRouter = createRouter()
  router.matcher = newRouter.matcher // reset router
}

export default router
